/**
 * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com)
 * http://github.com/fonoster/fonoster
 *
 * This file is part of Fonoster
 *
 * Licensed under the MIT License (the "License");
 * you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 *
 *    https://opensource.org/licenses/MIT
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
enum VoiceLanguage {
  // Base language codes
  AR = "ar",
  AF = "af",
  AM = "am",
  AS = "as",
  AZ = "az",
  BG = "bg",
  BN = "bn",
  BS = "bs",
  CA = "ca",
  CS = "cs",
  CY = "cy",
  DA = "da",
  DE = "de",
  EL = "el",
  EN = "en",
  ES = "es",
  ET = "et",
  EU = "eu",
  FA = "fa",
  FI = "fi",
  FIL = "fil",
  FR = "fr",
  GA = "ga",
  GL = "gl",
  GU = "gu",
  HE = "he",
  HI = "hi",
  HR = "hr",
  HU = "hu",
  HY = "hy",
  ID = "id",
  IS = "is",
  IT = "it",
  JA = "ja",
  JV = "jv",
  KA = "ka",
  KK = "kk",
  KM = "km",
  KN = "kn",
  KO = "ko",
  LO = "lo",
  LT = "lt",
  LV = "lv",
  MK = "mk",
  ML = "ml",
  MN = "mn",
  MR = "mr",
  MS = "ms",
  MT = "mt",
  MY = "my",
  NB = "nb",
  NE = "ne",
  NL = "nl",
  OR = "or",
  PA = "pa",
  PL = "pl",
  PS = "ps",
  PT = "pt",
  RO = "ro",
  RU = "ru",
  SI = "si",
  SK = "sk",
  SL = "sl",
  SO = "so",
  SQ = "sq",
  SR = "sr",
  SU = "su",
  SV = "sv",
  SW = "sw",
  TA = "ta",
  TE = "te",
  TH = "th",
  TR = "tr",
  UK = "uk",
  UR = "ur",
  UZ = "uz",
  // Regional variants
  AR_XA = "ar-XA",
  AF_ZA = "af-ZA",
  AM_ET = "am-ET",
  AR_AE = "ar-AE",
  AR_BH = "ar-BH",
  AR_DZ = "ar-DZ",
  AR_EG = "ar-EG",
  AR_IQ = "ar-IQ",
  AR_JO = "ar-JO",
  AR_KW = "ar-KW",
  AR_LB = "ar-LB",
  AR_LY = "ar-LY",
  AR_MA = "ar-MA",
  AR_OM = "ar-OM",
  AR_QA = "ar-QA",
  AR_SA = "ar-SA",
  AR_SY = "ar-SY",
  AR_TN = "ar-TN",
  AR_YE = "ar-YE",
  AS_IN = "as-IN",
  AZ_AZ = "az-AZ",
  BG_BG = "bg-BG",
  BN_BD = "bn-BD",
  BN_IN = "bn-IN",
  BS_BA = "bs-BA",
  CA_ES = "ca-ES",
  CMN_CN = "cmn-CN",
  CMN_TW = "cmn-TW",
  CS_CZ = "cs-CZ",
  CY_GB = "cy-GB",
  DA_DK = "da-DK",
  DE_AT = "de-AT",
  DE_CH = "de-CH",
  DE_DE = "de-DE",
  EL_GR = "el-GR",
  EN_AU = "en-AU",
  EN_CA = "en-CA",
  EN_GB = "en-GB",
  EN_HK = "en-HK",
  EN_IE = "en-IE",
  EN_IN = "en-IN",
  EN_KE = "en-KE",
  EN_NG = "en-NG",
  EN_NZ = "en-NZ",
  EN_PH = "en-PH",
  EN_SG = "en-SG",
  EN_TZ = "en-TZ",
  EN_US = "en-US",
  EN_ZA = "en-ZA",
  ES_AR = "es-AR",
  ES_BO = "es-BO",
  ES_CL = "es-CL",
  ES_CO = "es-CO",
  ES_CR = "es-CR",
  ES_CU = "es-CU",
  ES_DO = "es-DO",
  ES_EC = "es-EC",
  ES_ES = "es-ES",
  ES_GQ = "es-GQ",
  ES_GT = "es-GT",
  ES_HN = "es-HN",
  ES_MX = "es-MX",
  ES_NI = "es-NI",
  ES_PA = "es-PA",
  ES_PE = "es-PE",
  ES_PR = "es-PR",
  ES_PY = "es-PY",
  ES_SV = "es-SV",
  ES_US = "es-US",
  ES_UY = "es-UY",
  ES_VE = "es-VE",
  ES_419 = "es-419",
  ET_EE = "et-EE",
  EU_ES = "eu-ES",
  FA_IR = "fa-IR",
  FI_FI = "fi-FI",
  FIL_PH = "fil-PH",
  FR_BE = "fr-BE",
  FR_CA = "fr-CA",
  FR_CH = "fr-CH",
  FR_FR = "fr-FR",
  GA_IE = "ga-IE",
  GL_ES = "gl-ES",
  GU_IN = "gu-IN",
  HE_IL = "he-IL",
  HI_IN = "hi-IN",
  HR_HR = "hr-HR",
  HU_HU = "hu-HU",
  HY_AM = "hy-AM",
  ID_ID = "id-ID",
  IS_IS = "is-IS",
  IT_IT = "it-IT",
  JA_JP = "ja-JP",
  JV_ID = "jv-ID",
  KA_GE = "ka-GE",
  KK_KZ = "kk-KZ",
  KM_KH = "km-KH",
  KN_IN = "kn-IN",
  KO_KR = "ko-KR",
  LO_LA = "lo-LA",
  LT_LT = "lt-LT",
  LV_LV = "lv-LV",
  MK_MK = "mk-MK",
  ML_IN = "ml-IN",
  MN_MN = "mn-MN",
  MR_IN = "mr-IN",
  MS_MY = "ms-MY",
  MT_MT = "mt-MT",
  MY_MM = "my-MM",
  NB_NO = "nb-NO",
  NE_NP = "ne-NP",
  NL_BE = "nl-BE",
  NL_NL = "nl-NL",
  OR_IN = "or-IN",
  PA_IN = "pa-IN",
  PL_PL = "pl-PL",
  PS_AF = "ps-AF",
  PT_BR = "pt-BR",
  PT_PT = "pt-PT",
  RO_RO = "ro-RO",
  RU_RU = "ru-RU",
  SI_LK = "si-LK",
  SK_SK = "sk-SK",
  SL_SI = "sl-SI",
  SO_SO = "so-SO",
  SQ_AL = "sq-AL",
  SR_LATN_RS = "sr-Latn-RS",
  SR_RS = "sr-RS",
  SU_ID = "su-ID",
  SV_SE = "sv-SE",
  SW_KE = "sw-KE",
  SW_TZ = "sw-TZ",
  TA_IN = "ta-IN",
  TA_LK = "ta-LK",
  TA_MY = "ta-MY",
  TA_SG = "ta-SG",
  TE_IN = "te-IN",
  TH_TH = "th-TH",
  TR_TR = "tr-TR",
  UK_UA = "uk-UA",
  UR_IN = "ur-IN",
  UR_PK = "ur-PK",
  UZ_UZ = "uz-UZ",
  VI_VN = "vi-VN",
  WUU_CN = "wuu-CN",
  YUE_CN = "yue-CN",
  YUE_HK = "yue-HK",
  ZH_CN = "zh-CN",
  ZH_CN_GUANGXI = "zh-CN-guangxi",
  ZH_CN_HENAN = "zh-CN-henan",
  ZH_CN_LIAONING = "zh-CN-liaoning",
  ZH_CN_SHAANXI = "zh-CN-shaanxi",
  ZH_CN_SHANDONG = "zh-CN-shandong",
  ZH_CN_SICHUAN = "zh-CN-sichuan",
  ZH_HK = "zh-HK",
  ZH_TW = "zh-TW",
  ZU_ZA = "zu-ZA"
}

enum VoiceGender {
  MALE,
  FEMALE,
  NEUTRAL
}

export { VoiceGender, VoiceLanguage };
